#pragma once
#include "scbitf.h"

namespace rtdev {
class NoIoDev : public ScbIOItf
{
public:
    NoIoDev() = default;
    size_t dio_cnt(size_t& di_cnt, size_t& do_cnt)
    {
        di_cnt = 0;
        do_cnt = 0;
        return 0;
    }
    size_t aio_cnt(size_t& ai_cnt, size_t& ao_cnt)
    {
        ai_cnt = 0;
        ao_cnt = 0;
        return 0;
    }

    int set_do(std::vector<int8_t> output) { return -1; }
    int get_di(std::vector<int8_t> &input) { return -1; }
    int get_ao(std::vector<double> output) { return -1; }
    int get_ai(std::vector<double> &input) { return -1; }
    int get_encoder(uint8_t& dir, uint16_t& pulse)
    {
        dir = 0;
        pulse = 0;
        return -1;
    }

    int get_user_io_current() { return 0; }
    int get_dio_type(uint8_t id) { return 0; }
    int config_dio_type(uint16_t type) { return -1; }
    int config_aio_type(uint16_t type) { return -1; }
    int get_aio_type(uint8_t id) { return -1; }
};
}  // namespace rtdev
